/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function EntryNodeOfLoop(pHead)
{
    // write code here
    var fast = pHead // 快指针
    var slow = pHead // 满指针
    while(fast !== null && fast.next !== null){ //当快指针不为空并且 快指针的next 也不为空的时候 说明这个是个环链表
      fast = fast.next.next // 快指针走两步
      slow = slow.next // 满指针走一步
      if(fast === slow){ // 当快指针等于满指针的时候 说明第一次相遇
        // 第一次相遇后 让head指针向后走 slow也向后走
        // 当两个相等的时候就是入环节点了
        while(pHead !== slow){
          pHead = pHead.next
          slow = slow.next
        }
        return pHead
      }
    }
    return null
}
module.exports = {
    EntryNodeOfLoop : EntryNodeOfLoop
};